BGP Hijacking 一直都是一個不可小看的問題,而且這種事情其實在 1997 年就有出現過了(不過當時是 leak),然後接著大約是在 2008-2009 左右,BlackHat 和 DEFCON 有人提出來講。
我們來講幾個比較明顯的,會受到 BGP Hijacking 影響的問題。
我們這一系列的文章,一開始即講了 HTTPS。裡面有提到說,我們要使一個網域的憑證有效,必須要找憑證授權中心來幫我們簽憑證(除非授權中心把私鑰用某種方式先給我們,但這樣很不好)。
憑證授權,要經過認證。認證有三種,分別是 DV(網域認證)、OV(組織驗證,要電話審核,要網域等等)和 EV(加強版驗證,比 OV 更麻煩)。
這邊只考慮 DV (網域認證) 的狀況,不考慮 OV 和 EV。一來是因為 DV 常用,二來是因為這兩個不受 BGP 狹持影響,再來,這攻擊只要 DV 過了就成功了。
DV 簽憑證,程序大概是這樣的:
我們來用 BGP 狹持的方式來思考。BGP 狹持可以把別人的網段蓋掉,然後把流量導向自己的網段。
那依據各種認證方式的不同,有可能會發生幾種狀況:
無論如何,基本上都會成功讓授權中心認為你真的有那個網域,然後你就可以把 BGP 狹持先撤掉,你手上還是會有一張有效的憑證,棒棒。
這時候你就可以那這張憑證,幫人做一下中間人了。(扣除對方有做 pinning 的狀況)
這流程也可以反過來,把授權中心的 BGP 蓋掉。不過,因為沒有私鑰,簽不了憑證,大概也只能騙對方錢。
加密貨幣也很容易受到 BGP 狹持的影響。因為加密貨幣通常是由網路上的節點來確認某交易是否合法,所以只要你控制了超過一半以上的算力,你就可以為所欲為。
Maria 和 Aviv 等人 有提出一篇 paper,專門講述這個問題。
這篇 paper 主要敘述了兩種可能的問題,分別是
不管是哪一個,都能影響一個加密貨幣網路的可信任度。
講了這麼多,重點只有一句。BGP 狹持所帶來的風險,是不能小看的。
目前常見的防禦方式,主要有分為兩種:
不過,不管是哪兩種方式,目前都還是需要每一間 ISP 等等機構都配合,才能奏效。